package org.jeecg.modules.api.vo.param;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

@Data
public class PaymentConfirmationParamVo {

    @ApiModelProperty(value = "待付款信息IDS")
    @NotNull(message = "待付款信息ID不能为空")
    private List<String> orderIds;

    @ApiModelProperty(value = "客户ID")
    @NotBlank(message = "客户ID不能为空")
    private String customerId;

    @ApiModelProperty(value = "交易状态(SUCCESS、支付成功/FAIL、支付失败)")
    @NotBlank(message = "交易状态不能为空")
    private String tradeStatus;

    @ApiModelProperty(value = "交易信息")
//    @NotBlank(message = "交易信息不能为空")
    private String tradeMessage;

//    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "交易时间 格式：yyyy-MM-dd HH:mm:ss")
    @NotBlank(message = "交易时间不能为空")
    private String tradeTime;

    /**支付订单号*/
    @ApiModelProperty(value = "支付订单号")
    @NotBlank(message = "支付订单号不能为空")
    private String transactionId;

    /**支付方式*/
    @ApiModelProperty(value = "支付方式")
    @NotBlank(message = "支付方式不能为空")
    private String tradeType;

    /**金额*/
    @ApiModelProperty(value = "总金额（分）")
    @NotNull(message = "总金额（分）不能为空")
    @Min(value = 1, message = "总金额（分）必须大于等于1")
    private Long amountMoney;

    @ApiModelProperty(value = "付款方名称")
//    @NotBlank(message = "付款方名称不能为空")
    private String payerName;

    @ApiModelProperty(value = "付款方账号")
//    @NotBlank(message = "付款方账号不能为空")
    private String payerAccount;

    @ApiModelProperty(value = "付款方开户行")
//    @NotBlank(message = "付款方开户行不能为空")
    private String payerBankDeposit;


    @ApiModelProperty(value = "入账公司名称")
    @NotBlank(message = "入账公司名称不能为空")
    private String recordedCompanyName;

    @ApiModelProperty(hidden = true)
    private String recordedCompanyId;

//    /**金额*/
//    @ApiModelProperty(value = "金额（分）")
//    @NotNull(message = "金额（分）不能为空")
//    @Min(value = 1, message = "金额（分）必须大于等于1")
//    private Long money;

    @ApiModelProperty(value = "收款方名称")
    @NotBlank(message = "收款方名称不能为空")
    private String payeeName;

    @ApiModelProperty(value = "收款方账号")
    @NotBlank(message = "收款方账号不能为空")
    private String payeeAccount;

    @ApiModelProperty(value = "收款方开户行")
    @NotBlank(message = "收款方开户行不能为空")
    private String payeeBankDeposit;

//    @ApiModelProperty(value = "收款方信息")
//    @NotNull(message = "收款方信息不能为空")
//    @Valid
//    private List<PayeeParamVo> payeeList;


}
